<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <!--
    - let:可以将let看成更完美的var，用于声明一个变量
    - const:主要作用是将某个变量修饰为常量，不可以再次赋值
    - 什么时候使用const呢？
        当我们修饰的标识符不会被再次赋值时，就可以使用const来保证数据的安全性
    - 建议：在我们ES6开发中，优先使用const，只有需要改变某一个标识符的时候才使用let
  -->
  <script>
    //1.注意一：一旦给const修饰的标识符被赋值之后，不能修改
    const a=20;
   // a=30; 报错
    
    // 2.注意二：在使用const定义标识符，必须进行赋值
   // const b; 报错
   
    // 3.注意三：常量的含义是指向的对象不能修改，但是可以修改和增加对象内部的属性
    const obj={
      name:"axu",
      age:30
    }
   /* obj={
      name:"laoWen",
      age:29
    }*/  // 报错，常量指向的对象不能修改
    obj.name="laoWen"; //但是可以修改对象内部的属性
    obj.sex="Alpha"
    console.log(obj);  // obj{name:"laoWen" age:30 sex="Alpha" }
    
    
    /* 4.在全局作用域中使用var声明的变量或对象，将作为浏览器环境中的window对象的属性，这
     意味着使用var很可能会无意覆盖一个已经存在的全局属性
      5.如果在全局作用域下使用let或const，则会在全局作用域下创建一个新的绑定，但该绑定不会成为
      window对象的属性
     */
    let getting='welcome';
    console.log(getting===window.getting); //false
    
    var setting='hello';
    console.log(setting===window.setting); //true
    
    
    
   
  </script>
</head>
<body>

</body>
</html>